home *** CD-ROM | disk | FTP | other *** search
/ CBM Funet Archive / cbm-funet-archive-2003.iso / cbm / c64 / programming / atbasic.lzh / atbasic / src / SBS 5.3 .S 7,P (.txt) < prev    next >
Encoding:
Commodore BASIC  |  1996-03-04  |  5.3 KB  |  145 lines

  1. 10 clrfl and flag:sta flag:rts
  2. 20 setfl ora flag:sta flag:rts
  3. 30 clrfla and flaga:sta flaga:rts
  4. 40 setfla ora flaga:sta flaga:rts
  5. 100 ;:;******** set v0300:;
  6. 110 l2 lda #0:sta flaga:lda #52:sta flag:l2a ldx # 11
  7. 120 l3 lda l1,x:sta vektab,x:dex
  8. 130 bpl l3:sei:lda #<virq:sta $0314:lda #>virq:sta $0315
  9. 140 lda #<brkirq:sta $0316:lda #>brkirq:sta $0317
  10. 150 lda ciati+14:ora #128:sta ciati+14;echtzeituhr 50 hz
  11. 160 lda #<nbsout:sta $0326:lda #>nbsout:sta $0327
  12. 170 lda #<nbsin:sta $0324:lda #>nbsin:sta $0325:cli:rts
  13. 180 ;:;******** neuer irq:;
  14. 190 virq lda ciati+13:bpl endirq:and #4:beq endirq:jmp alarm
  15. 200 endirq jmp $ea31
  16. 210 ;:;******** neuer reset:;
  17. 220 nreset jsr $fda3;irq setzen
  18. 230 jsr $fd50:jsr $fd15:jsr l20:lda #8:sta diskadr
  19. 240 cli:;**** basic:jsr l2
  20. 250 jsr $e3bf:.if v&1-1:.goto 260
  21. 251 ldy #79:xxx1 lda keyrtext,y:sta keytext,y:dey:bpl xxx1
  22. 252 lda #>prganf-256:.goto 270
  23. 260 lda #>prganf
  24. 270 sta basend+1:sta strstart+1:sta $0284
  25. 280 lda bastart:ldy bastart+1:jsr $a408
  26. 290 lda #<resout:ldy #>resout:jsr strout
  27. 300 jsr $e430:ldx #$fb:txs
  28. 320 .if fs&1-1:.goto 323
  29. 321 lda $028d:cmp #4:bne res1
  30. 323 .if fs&3:.goto 325
  31. 324 .goto 329
  32. 325 jsr $aad7:lda #3:ldx #<exestr:ldy #>exestr:jsr $ffbd:lda #8:sta devadr
  33. 326 lda #>ready-1:pha:lda #<ready-1:pha:lda #$80:jsr $ff90:jmp enexe
  34. 327 exestr .asc "@r*":.if fs&1-1:.goto 330
  35. 329 res1 jmp ready
  36. 330 ;:;******** neuer nmi:;
  37. 340 nnmi jsr $f6bc;time erhoehen
  38. 350 jsr getstp:beq brkirq:oldnmi jmp $fe72;stop-taste nicht gedrueckt
  39. 360 brkirq jsr $fd15:jsr $fda3:jsr l21
  40. 370 ;****basic:jsr clrch:jsr l2a:lda # 0
  41. 380 sta flaga:sta aktio:lda flag:and #%10001010:ora #%00110100:sta flag
  42. 390 jsr $a67a:cli
  43. 400 ;**** fehlermeldung
  44. 410 ldx # 128:v0300 txa ;fehlerm. ausgeben:bpl l6
  45. 420 jmp ready ;keine fehlermeldung:l6 txa :asl
  46. 430 tax :lda errtab,x:sta flag22
  47. 440 lda errtab+1,x:sta flag22+1:jsr clrch
  48. 450 lda # 0:sta aktio
  49. 460 jsr $aad7:jsr $ab45:ldy # 0
  50. 470 l7 lda (flag22),y:pha :and # 127
  51. 480 jsr basout:iny :pla
  52. 490 bpl l7:jsr $a67a:lda # 105
  53. 500 ldy # 163:jsr strout;error ausg.:ldy znr+1
  54. 510 iny :beq l8:jsr $bdc2;"in zn" ausgeben
  55. 520 jsr $aad7:jsr l9;zeile listen
  56. 530 l8 lda #255-16:jsr clrfla:jmp ready
  57. 540 ;:;******** jsr $ff5b:;
  58. 550 l20 jsr l21:jmp $ff5e
  59. 560 ;******** jsr $e518
  60. 570 l21 lda # 3:sta aktout:lda # 0
  61. 580 sta aktin:ldx # 11:l22 lda $ecdb,x
  62. 590 sta $d022,x:dex :bpl l22
  63. 600 lda # 0:colrahm =*-1:sta $d020:lda #0:colbck =*-1:sta $d021
  64. 610 ldx # 32:jsr $e5aa:lda # 0
  65. 620 sta $0291:sta flagcf:lda # 72
  66. 630 sta $028f:lda # 235:sta $0290
  67. 640 lda # 10:sta $0289:sta $028c
  68. 650 lda # 13:coltext =*-1:sta $0286:lda #4:sta $028b:lda #$0c:sta $cd:sta $cc
  69. 651 jmp $e544
  70. 660 ;:;******** eingabe abwarten:;
  71. 665 autooff lda #255-18:jmp clrfla
  72. 670 aaaa1 jsr autooff:nn0302 lda flaga:and #64+16:beq nn032a
  73. 680 and #64:beq nn032a1:jmp env0302
  74. 690 nn032a1 jsr auv0302:auret =*
  75. 700 nn032a jsr $a560:meret stx zeibas:sty zeibas+1:jsr chrget:tax:beq aaaa1
  76. 701 ldx #$ff:stx $3a
  77. 702 cmp #"*":beq aur2:cmp #160:bne aur3
  78. 703 aur2 jsr chrget:bcc nn032b
  79. 705 aur3 jsr autooff
  80. 710 jsr chr(NULL)t:tax:beq nn0302:bcc nn032b:jmp $a496
  81. 720 nn032b jsr $a96b:cmp #0:bne aur1:lda #16:bit flaga:bne aaaa1
  82. 724 aur1 lda #8:bit flag:bne nn032c
  83. 725 lda #2:bit flag:beq nn032f:jsr $a57c:jmp $a4a2
  84. 730 nn032f jsr $a579:sty $0b:lda flagff:beq klaok
  85. 740 jmp syntax:klaok jmp $a4a4
  86. 750 nn032c ldy #0:ldx #5:nn032d lda (zeibas),y:sta $01fb,x
  87. 760 beq nn032e:iny:inx:bne nn032d
  88. 770 nn032e stx $0b:jmp $a4a4
  89. 780 ;:;******** ascii -> basic-tokens:;
  90. 790 v0304 lda #0:sta flagff;zaehler fuer klammer:ldx zeibas
  91. 800 v0304x2 ldy # 4:sty hklist:l23 lda buffer,x
  92. 810 bpl l24:cmp # 255;>128:beq l28
  93. 820 inx :bne l23:l24 cmp # 32;space ueberlesen
  94. 830 beq l28:sta hochk:cmp # 34;hochkomma print
  95. 840 beq l32;bis naechstes hk direkt:bit hklist;data-zeile ?:bvs l28;rest direkt
  96. 850 cmp # 63:bne l25:lda # 153
  97. 860 bne l28:l25 cmp # 48:bcc l26
  98. 870 cmp # 60:bcc l28:l26 sty flag71
  99. 880 ldy # 0:sty zeibuf:dey
  100. 890 stx zeibas:dex :jsr l35
  101. 900 beq l33:l27 ldy flag71:l28 inx
  102. 910 iny :sta buffer-5,y:lda buffer-5,y
  103. 920 beq l34:cmp #"(":beq l28a1:cmp #$a3;tab(:beq l28a1
  104. 930 cmp #$a6;spc(:bne l28a:l28a1 inc flagff:bne l28b
  105. 940 l28a cmp #")":bne l28b:dec flagff
  106. 950 l28b sec :sbc # 58
  107. 960 beq l29:cmp # 73:bne l30
  108. 970 l29 sta hklist:l30 sec :sbc # 85;rem-code:beq l23a1
  109. 971 cmp #codauto-85-58:bne l23:lda #0
  110. 980 l23a1 sta hochk:l31 lda buffer,x
  111. 990 beq l28:cmp hochk:beq l28
  112. 1000 l32 iny :sta buffer-5,y:inx
  113. 1010 bne l31:l33 lda buffer,x:bpl l27
  114. 1020 l34 sta buffer-3,y:dec zeibas+1:lda # 255
  115. 1030 sta zeibas
  116. 1040 l34a rts
  117. 1050 ;:;**** befehl (asc) auswerten:;:l35 iny
  118. 1060 inx :l36 lda buffer,x:sec
  119. 1070 sbc oldasc,y:beq l35:cmp # 128
  120. 1080 bne l38:l37 ora zeibuf:rts
  121. 1090 l38 ldx zeibas:inc zeibuf:l39 iny
  122. 1100 lda oldasc-1,y:bpl l39:lda oldasc,y
  123. 1110 bne l36:ldy # 255:dex
  124. 1120 ;:;**** neue befehle:;:l40 inx :iny :l41 lda buffer,x
  125. 1130 sec :sbc asctab,y:beq l40
  126. 1140 cmp # 128:beq l37:ldx zeibas
  127. 1150 inc zeibuf:l42 iny :lda asctab-1,y
  128. 1160 bpl l42:lda asctab,y:bne l41
  129. 1170 v0308xxx rts
  130. 1180 ;:;******** befehl ausfuehren:;
  131. 1190 v0308 lda zeibas+1:cmp #3:bcc l44:bit flag:bvc l44
  132. 1200 jsr ltrace:l44 jsr chrget:beq l45xxx:cmp #"!":beq l45aa
  133. 1210 cmp #".":beq l45ab:cmp #firscode
  134. 1220 bcc l45:cmp #lastcode:bcc l46:l45 ldx #oldanz-1
  135. 1230 l45a cmp oldtab,x:beq l45b:dex:bpl l45a
  136. 1240 l45c jsr chr(NULL)t:jmp $a7e7:l45aa jmp $c006:l45ab jmp mmon
  137. 1250 l45b txa:asl:tay:jsr l450a:l45xxx jmp $a7ae
  138. 1260 l450a lda newadr+1,y:pha:lda newadr,y:pha:jmp chrget
  139. 1270 l46 jsr l48
  140. 1280 jmp $a7ae:l48 sec :sbc # 204
  141. 1290 asl :tay :lda adrtab+1,y
  142. 1300 pha :lda adrtab,y:pha
  143. 1310 jmp chrget
  144. 1315 rscr =*;********
  145.